﻿using System;
using CLab.BusinessEntity;
using GandA.Component.DataAccess.SQLServer;
using CLab.Common.Constantes;
using System.Data;

namespace CLab.DAO
{
    public static class ProcedenciaServiceDAO
    {
        public static int RegistraProcedencia(Procedencia pro)
        {
            SQLParameterCollection paramsSql = new SQLParameterCollection();

            paramsSql.Add(new SQLParameter(Parametros.pnIdLaboratorio, pro.IdLaboratorio, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdProcedencia, pro.IdProcedencia, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.psDescripcion, pro.Descripcion, SQLParameter.vEnumSqlDbType.VarChar, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.psIpMod, pro.IpMod, SQLParameter.vEnumSqlDbType.VarChar, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdUsuarioMod, pro.IdUsuarioMod, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdSucursal, pro.IdSucursal, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));

            try
            {
                DataSet ds = new SQL().ExecuteQueryStoreProcedure("spGuardaProcedencia", paramsSql);
                return CLab.Common.Util.Convert.ToInt(ds.Tables[0].Rows[0][Columnas.IdProcedencia].ToString());
            }
            catch (SQLException ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public static void EliminaProcedencia(Procedencia pro)
        {
            SQLParameterCollection paramsSql = new SQLParameterCollection();

            paramsSql.Add(new SQLParameter(Parametros.pnIdProcedencia, pro.IdProcedencia, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdLaboratorio, pro.IdLaboratorio, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));
            paramsSql.Add(new SQLParameter(Parametros.pnIdSucursal, pro.IdSucursal, SQLParameter.vEnumSqlDbType.Int, SQLParameter.vEnumParameterDirection.vInput));

            try
            {
                DataSet ds = new SQL().ExecuteQueryStoreProcedure("spEliminaProcedencia", paramsSql);
            }
            catch (SQLException ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
}